home *** CD-ROM | disk | FTP | other *** search
/ 64'er Special 20 / 64er_Magazin_Sonderheft_20_19xx_Markt__Technik_de_Side_A.d64 / listing 13 (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  3KB  |  67 lines

  1. 10 rem * sprite beispiel 2 *
  2. 20 rem noch einmal der heissluftballon
  3. 30 vic=13*4096:rem hier beginnen die vic-register
  4. 35 poke vic+21,63:rem einschalten sprite 0 bis 5
  5. 36 poke vic+33,14:rem hintergrundfarbe hellblau
  6. 37 poke vic+23,3:rem sprite 0 und 1 in y verdoppeln
  7. 38 poke vic+29,3:rem und in x
  8. 40 poke 2040,192:rem spritezeiger 0 auf block 192
  9. 50 poke 2041,193:rem spriteyeiger 1
  10. 60 poke 2042,192:rem spritezeiger 2
  11. 70 poke 2043,193:rem spritezeiger 3
  12. 80 poke 2044,192:rem spritezeiger 4
  13. 90 poke 2045,193:rem spritezeiger 5
  14. 100 poke vic+4,30:rem x-position sprite 2
  15. 110 poke vic+5,58:rem y-position sprite 2
  16. 120 poke vic+6,65:rem x-position sprite 3
  17. 130 poke vic+7,58:rem y-position sprite 3
  18. 140 poke vic+8,100:rem x-position sprite 4
  19. 150 poke vic+9,58:rem y-position sprite 4
  20. 160 poke vic+10,100:rem x-position sprite 5
  21. 170 poke vic+11,58:rem y-position sprite 5
  22. 175 print"[147]"tab(15)"dies sind 2 hires-sprites";
  23. 176 printtab(55)"einer ueber dem anderen"
  24. 180 poke vic,100:rem x-position sprite 0
  25. 190 poke vic+1,100:rem und y-position
  26. 200 poke vic+2,100:rem x-position sprite 1
  27. 210 poke vic+3,100:rem y-position sprite 1
  28. 220 poke vic+39,1:rem farbe sprite 0
  29. 230 poke vic+41,1:rem farbe sprite 2
  30. 240 poke vic+43,1:rem farbe sprite 4
  31. 250 poke vic+40,6:rem farbe sprite 1
  32. 260 poke vic+42,6:rem farbe sprite 3
  33. 270 poke vic+44,6:rem farbe sprite 5
  34. 280 for x=192 to 193:rem spritedefinitionen
  35. 290 for y=0 to 63:rem bytezaehler
  36. 300 read a:rem spritedaten lesen
  37. 310 poke x*64+y,a:rem und eintragen
  38. 320 next y,x
  39. 330 dx=1:dy=1
  40. 340 x=peek(vic):rem x-position sprite 0 pruefen
  41. 350 y=peek(vic+1):rem y-position testen
  42. 360 if y=50 or y=200 then dy=-dy:rem bei randposition dy umkehren
  43. 380 if x=24 and (peek(vic+16)and 1)=0 then dx=-dx:rem wenn sprite
  44. 390 rem am linken rand (x<24 und msb=0) dann dx umkehren
  45. 400 if x=40 and (peek(vic+16)and 1)=1 then dx=-dx:rem wenn sprite
  46. 410 rem am rechten rand (x=40 und msb=1) dann dx umdrehen
  47. 420 if x=255 and dx=1 then x=-1:side=3
  48. 430 rem umschalten auf andere bildschirmseite
  49. 440 if x=0 and dx=-1 then x=256:side=0
  50. 450 rem umschalten auf andere bildschirmseite
  51. 460 x=x+dx:rem addieren von dx zu x
  52. 470 x=x and 255:rem sicherstellen dass x im erlaubten bereich
  53. 480 y=y+dy
  54. 485 poke vic+16,side
  55. 490 poke vic,x:rem neue x-position sprite 0
  56. 500 poke vic+2,x:rem neuer x-wert sprite 1
  57. 510 poke vic+1,y:rem neuer y-wert
  58. 520 poke vic+3,y:rem neuer y-wert sprite 1
  59. 530 goto 340
  60. 600 rem ***** sprite daten *****
  61. 610 data 0,255,0,3,153,192,7,24,224,7,56,224,14,126,112,14,126,112,14,126,112
  62. 620 data 6,126,96,7,56,224,7,56,224,1,56,128,0,153,0,0,90,0,0,56,0
  63. 630 data 0,56,0,0,0,0,0,0,0,0,126,0,0,42,0,0,84,0,0,40,0,0
  64. 640 data 0,0,0,0,102,0,0,231,0,0,195,0,1,129,128,1,129,128,1,129,128
  65. 650 data 1,129,128,0,195,0,0,195,0,4,195,32,2,102,64,2,36,64,1,0,128
  66. 660 data 1,0,128,0,153,0,0,153,0,0,0,0,0,84,0,0,42,0,0,20,0,0
  67.